package cn.good.yan.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * MyBatisPlus 配置
 * @author shengren.yan
 * @create 2022-09-08
 */
@Configuration
//@MapperScan("com..**.mapper")
@MapperScan("cn.good.yan.mapper")
public class MyBatisPlusConfig {

    /**
     * MybatisPlus的拦截器  （配置插件的）
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

        // 一些详细配置
//        PaginationInnerInterceptor pagination = new PaginationInnerInterceptor(DbType.MYSQL);
//        // 设置请求的页面 大于最大页，true 回到首页，false 不会 （默认 不会）
//        pagination.setOverflow(false);
//        // 设置最大单页 限制数量，默认是500L ，-1 代表没有限制
//        pagination.setMaxLimit(500L);
//        interceptor.addInnerInterceptor(pagination);

        // 添加分页插件 参数：指定mysql数据库类型
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        // 添加乐观锁插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }

}
